DataWeave হল মিউলসফট (MuleSoft) এর একটি শক্তিশালী ডেটা ট্রান্সফরমেশন ভাষা, যা মূলত ডেটা এক্সচেঞ্জ ফরম্যাটগুলি (যেমন JSON, XML, CSV, Java Objects ইত্যাদি) মধ্যে ট্রান্সফরমেশন সম্পন্ন করতে ব্যবহৃত হয়। DataWeave আপনাকে একাধিক ডেটা ফরম্যাটে ট্রান্সফরমেশন (রূপান্তর) করার জন্য একটি declarative এবং functional ভাষা প্রদান করে, যা ডেটা ম্যানিপুলেশন এবং প্রসেসিং সহজ এবং কার্যকর করে তোলে।
DataWeave এর মূল ধারণা
DataWeave একটি declarative ভাষা, যার মাধ্যমে আপনি কিভাবে ডেটা রূপান্তরিত হবে তা উল্লেখ করতে পারেন। এতে একটি সরল, পাঠযোগ্য এবং কার্যকরী সিনট্যাক্স রয়েছে। DataWeave মূলত তিনটি কাজ সম্পাদন করে:
- Mapping: ইনপুট ডেটা থেকে আউটপুট ডেটাতে মান বা প্রপার্টি ম্যাপ করা।
- Filtering: ডেটা ফিল্টার করা, নির্দিষ্ট শর্ত অনুযায়ী।
- Transformation: ডেটাকে এক ফরম্যাট থেকে অন্য ফরম্যাটে রূপান্তরিত করা।
DataWeave Syntax
DataWeave সিনট্যাক্স সাধারণত তিনটি প্রধান অংশে বিভক্ত:
- Source: ইনপুট ডেটা, যেমন JSON, XML, CSV ইত্যাদি।
- Transformation Logic: ডেটা ট্রান্সফর্মেশন লজিক, যেখানে আপনি ইনপুট ডেটা কিভাবে আউটপুট ডেটাতে রূপান্তরিত হবে তা উল্লেখ করেন।
- Target: আউটপুট ডেটা, যা প্রাপ্ত রূপান্তরিত ডেটা।
DataWeave উদাহরণ
1. JSON থেকে XML এ Data Transformation
ধরা যাক, আপনি একটি JSON অবজেক্টকে XML এ রূপান্তর করতে চান:
JSON ইনপুট:
{
"name": "John",
"age": 30,
"city": "New York"
}
DataWeave স্ক্রিপ্ট (JSON থেকে XML):
%dw 2.0
output application/xml
var inputJson = {
"name": "John",
"age": 30,
"city": "New York"
}
---
{
person: {
name: inputJson.name,
age: inputJson.age,
city: inputJson.city
}
}
আউটপুট (XML):
<person>
<name>John</name>
<age>30</age>
<city>New York</city>
</person>
এই উদাহরণে, inputJson ভ্যারিয়েবলটি JSON ডেটার একটি অবজেক্ট হিসেবে ডিফাইন করা হয়েছে, এবং DataWeave স্ক্রিপ্টের মাধ্যমে এটি XML ফরম্যাটে রূপান্তরিত হয়েছে।
2. CSV থেকে JSON এ Data Transformation
ধরা যাক, আপনার একটি CSV ফাইল রয়েছে, এবং আপনি সেটিকে JSON এ রূপান্তর করতে চান।
CSV ইনপুট:
name,age,city
John,30,New York
Jane,25,Los Angeles
DataWeave স্ক্রিপ্ট (CSV থেকে JSON):
%dw 2.0
output application/json
var inputCsv = read(url: "classpath://data.csv", format: "csv", header: true)
---
{
people: inputCsv map (p) -> {
name: p.name,
age: p.age,
city: p.city
}
}
আউটপুট (JSON):
{
"people": [
{
"name": "John",
"age": 30,
"city": "New York"
},
{
"name": "Jane",
"age": 25,
"city": "Los Angeles"
}
]
}
এই উদাহরণে, read() ফাংশনটি CSV ডেটাকে পড়েছে এবং তা JSON ফরম্যাটে রূপান্তরিত করা হয়েছে।
3. Filtering Data with DataWeave
DataWeave এর মাধ্যমে ডেটা ফিল্টার করা খুব সহজ। নিচের উদাহরণে একটি CSV ডেটা থেকে নির্দিষ্ট শর্ত অনুযায়ী ডেটা ফিল্টার করা হচ্ছে:
CSV ইনপুট:
name,age,city
John,30,New York
Jane,25,Los Angeles
Mike,35,Chicago
DataWeave স্ক্রিপ্ট (Filtering):
%dw 2.0
output application/json
var inputCsv = read(url: "classpath://data.csv", format: "csv", header: true)
---
{
filteredPeople: inputCsv filter (p) -> p.age > 30
}
আউটপুট (JSON):
{
"filteredPeople": [
{
"name": "Mike",
"age": 35,
"city": "Chicago"
}
]
}
এই উদাহরণে, filter ফাংশনটি ব্যবহার করা হয়েছে যাতে ৩০ বছরের বেশি বয়সের ব্যক্তি নির্বাচিত হয়।
DataWeave এর সুবিধা
- Declarative Syntax: DataWeave একটি declarative ভাষা, যেখানে আপনি শুধুমাত্র কী করতে চান তা উল্লেখ করেন, কীভাবে করতে হবে তা DataWeave নিজেই পরিচালনা করে।
- Multiple Format Support: DataWeave JSON, XML, CSV, Java, and other formats এর মধ্যে রূপান্তর করতে পারে।
- Powerful Data Transformation: DataWeave ডেটা ম্যাপিং, ফিল্টারিং, অ্যাগ্রিগেশন, এবং ট্রান্সফরমেশন করতে সক্ষম, যা আরও কার্যকরী ডেটা প্রক্রিয়া নিশ্চিত করে।
- Integrates with MuleSoft: DataWeave মিউলসফটের সাথে একীভূত হয়ে কাজ করতে পারে, যেখানে আপনি API-led ইন্টিগ্রেশন, ডেটা ফ্লো এবং সিস্টেম ইন্টিগ্রেশন সহজভাবে করতে পারেন।
উপসংহার
DataWeave একটি অত্যন্ত শক্তিশালী এবং কার্যকরী ডেটা ট্রান্সফরমেশন টুল যা মিউলসফট প্ল্যাটফর্মের মাধ্যমে সহজেই বিভিন্ন ডেটা ফরম্যাটের মধ্যে ট্রান্সফরমেশন করতে সহায়তা করে। এর ডেক্লারেটিভ সিনট্যাক্স এবং উচ্চ ক্ষমতাসম্পন্ন ট্রান্সফরমেশন ফিচারগুলি ডেটা ম্যানিপুলেশনকে দ্রুত এবং সহজ করে তোলে। JSON থেকে XML, CSV থেকে JSON বা অন্যান্য ফরম্যাটের মধ্যে ট্রান্সফরমেশন করতে DataWeave একটি অপরিহার্য টুল হিসেবে ব্যবহৃত হয়।
Read more